package ai.people.netmon.msgsearch.domain.entity;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;

/**
 * @author LiGuanNan
 * @date 2022/6/23 16:55
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SocialAccountCard implements Serializable {

    @Field(name = "user_type", type = FieldType.Text)
    private String platform;

    /**
     * 常规社交账号的字段 账号、平台、昵称、ID、链接、国家
     */
    @Field(name = "uid", type = FieldType.Text)
    private String uid;

    @Field(name = "id", type = FieldType.Text)
    private String id;

    @Field(name = "birth", type = FieldType.Text)
    private String birth;

    @Field(name = "country", type = FieldType.Text)
    private String country;

    @Field(name = "first_name", type = FieldType.Text)
    private String firstName;

    @Field(name = "last_name", type = FieldType.Text)
    private String lastName;

    @Field(name = "url", type = FieldType.Text)
    private String url;

    @Field(name = "nick_name", type = FieldType.Text)
    private String nickName;

    @Field(name = "user_name", type = FieldType.Text)
    private String userName;

    @Field(name = "urls", type = FieldType.Text)
    private String urls;

    @Field(name = "city", type = FieldType.Text)
    private String city;

    @Field(name = "email", type = FieldType.Text)
    private String email;

    @Field(name = "phone", type = FieldType.Text)
    private String phone;

    /**
     * linkedIN 特有字段 姓名、平台、职位、邮箱、链接、国家
     */
    @Field(name = "full_name", type = FieldType.Text)
    private String fullName;

    @Field(name = "linkedin_id", type = FieldType.Text)
    private String linkedinId;

    @Field(name = "linkedin_url", type = FieldType.Text)
    private String linkedinUrl;

    @Field(name = "job_title", type = FieldType.Text)
    private String jobTitle;

    @Field(name = "location_country", type = FieldType.Text)
    private String locationCountry;

    @Field(name = "linkedin_username", type = FieldType.Text)
    private String linkedinUsername;

    @Field(name = "work_email", type = FieldType.Text)
    private String workEmail;
}
